package com.koi.common.ex.koi;

import com.koi.common.enums.common.IResultEnum;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;

/**
 * 用来代替if()else{}的判断
 * flag == true的时候，抛出参数异常
 *
 * @author ･ᴗ･
 */
public class YUtil {

    /* 注意：使用 YUtil 工具类，StringUtils.isBlank()、StringUtils.isNotBlank()，flag为true则抛异常 */

    /**
     * @description [普通直接抛出异常]
     * @author ･ᴗ･
     */
    public static void isTrue(String message) {
        throw new ParamsException(message);
    }

    /**
     * @description [枚举直接抛出异常]
     * @author ･ᴗ･
     */
    public static void isTrue(IResultEnum resultEnum) {
        throw new ParamsException(resultEnum);
    }

    /**
     * @param flag    条件为true，抛出异常
     * @param message 异常信息
     * @description [普通抛出异常]
     * @author ･ᴗ･
     */
    public static void isTrue(Boolean flag, String message) {
        if (flag) {
            throw new ParamsException(message);
        }
    }

    /**
     * @param flag       条件为true，抛出异常
     * @param resultEnum 异常信息
     * @description [枚举抛出异常]
     * @author ･ᴗ･
     */
    public static void isTrue(Boolean flag, IResultEnum resultEnum) {
        if (flag) {
            throw new ParamsException(resultEnum);
        }
    }

    /**
     * @description [实体类抛出异常]
     * @author ･ᴗ･
     */
    public static void isNull(Object data, String message) {
        if (ObjectUtils.isEmpty(data)) {
            throw new ParamsException(message);
        }
    }

    /**
     * @description [实体类枚举抛出异常]
     * @author ･ᴗ･
     */
    public static void isNull(Object data, IResultEnum resultEnum) {
        if (ObjectUtils.isEmpty(data)) {
            throw new ParamsException(resultEnum);
        }
    }

    /**
     * @description [String枚举抛出异常]
     * @author ･ᴗ･
     */
    public static void isNull(String data, String message) {
        if (StringUtils.isBlank(data)) {
            throw new ParamsException(message);
        }
    }

    /**
     * @description [String枚举抛出异常]
     * @author ･ᴗ･
     */
    public static void isNull(String data, IResultEnum resultEnum) {
        if (StringUtils.isBlank(data)) {
            throw new ParamsException(resultEnum);
        }
    }

}
